package com.asset.dispoal.user.api;

import com.asset.dispoal.user.dto.BsLawyerAddRequest;
import com.asset.dispoal.user.dto.BsLawyerCourtRequest;
import com.asset.dispoal.user.dto.BsLawyerResponse;
import com.asset.dispoal.user.dto.BsLawyerUpdateRequest;
import com.asset.dispoal.user.dto.UserRequest;
import com.asset.dispoal.user.dto.UserResetPwdRequest;
import com.asset.dispoal.user.dto.UserResponse;
import tech.mhuang.pacebox.springboot.protocol.Result;
import tech.mhuang.pacebox.springboot.protocol.data.PageVO;

/**
 * @author qr
 * @date 2022/1/21$
 */
public interface UserService {

    /**
     * 用户登录
     *
     * @param userRequest
     * @return
     */
    Result<UserResponse> login(UserRequest userRequest);


    /**
     * 注册添加用户
     *
     * @param userRequest
     * @return
     */
    Result register(UserRequest userRequest);

    /**
     * 分页查询
     *
     * @param userRequest
     * @return
     */
    Result<PageVO<UserResponse>> queryPage(UserRequest userRequest);

    /**
     * 修改
     *
     * @param userRequest
     * @return
     */
    Result update(UserRequest userRequest);


    /**
     * 律师信息添加
     *
     * @param bsLawyerRequest
     */
    Result insertLawyer(BsLawyerAddRequest bsLawyerRequest);

    /**
     * 修复律师信息
     *
     * @param bsLawyerRequest
     */
    Result updateLawyer(BsLawyerUpdateRequest bsLawyerRequest);

    /**
     * 律师信息
     *
     * @param userId
     */
    Result<BsLawyerResponse> queryLawyerDetail(String userId);


    Result<PageVO<BsLawyerResponse>> queryLawyerByCourt(BsLawyerCourtRequest request);

    Result resetPwd(UserResetPwdRequest request);
}
